// 引入ASP.NET Core MVC命名空间，提供Web API相关功能
using Microsoft.AspNetCore.Mvc;

// 定义控制器所在的命名空间
namespace WebApplication1.Controllers;

// 标记这是一个API控制器
[ApiController]
// 设置路由模板，使用控制器名称作为路由前缀
[Route("[controller]")]
// 定义天气预报控制器类，继承自ControllerBase
public class WeatherForecastController : ControllerBase
{
    // 定义一个静态只读数组，存储天气描述词汇
    private static readonly string[] Summaries = new[]
    {
        "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
    };

    // 声明一个只读的日志记录器实例
    private readonly ILogger<WeatherForecastController> _logger;

    // 构造函数，通过依赖注入接收日志记录器
    public WeatherForecastController(ILogger<WeatherForecastController> logger)
    {
        _logger = logger;
    }

    // 定义一个HTTP GET方法，用于获取天气预报数据
    [HttpGet(Name = "GetWeatherForecast")]
    public IEnumerable<WeatherForecast> Get()
    {
        // 生成5个天气预报数据
        return Enumerable.Range(1, 5).Select(index => new WeatherForecast
        {
            // 设置日期为当前日期加上索引天数
            Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)), 
            // 随机生成摄氏温度，范围在-20到55度之间
            TemperatureC = Random.Shared.Next(-20, 55),
            // 随机选择一个天气描述词汇
            Summary = Summaries[Random.Shared.Next(Summaries.Length)]
        })
        .ToArray(); // 转换为数组返回
    }
    [HttpGet("hello")]
    public string Hello()
    {
        return "Hello World!";
    }
}
